#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//#include <stdio.h>
//int main()
//{
//    int n = 0;
//    int arr[11][11] = { 0 };
//    int i = 0, j = 0;
//    scanf("%d", &n);
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < n; j++)
//        {
//            scanf("%d", &arr[i][j]);
//        }
//    }
//    int flag = 0;
//    for (i = 1; i < n; i++)
//    {
//        for (j = 0; j < i; j++)
//        {
//            if (arr[i][j] != 0)
//            {
//                flag = 1;
//                printf("NO\n");
//                goto error;
//            }
//        }
//    }
//error:
//    if (flag == 0)
//    {
//        printf("YES\n");
//    }
//    return 0;
//}



//#include<stdio.h>
//int main()
//{
//    int a = 0, b = 0;
//    scanf("%d%d", &a, &b);
//    int i = 1;
//    int ret = 0;
//    do
//    {
//        ret = i;
//        i++;
//    } while ((i % a) != 0 || (i % b) != 0);
//    printf("%d", ret+1);
//    return 0;
//}
//
#include<stdio.h>
#include<string.h>
int main()
{
	char arr[105] = { 0 };
	gets(arr);
	int sz = strlen(arr);
	int i = 0;
	int j = 0;
	int cnt = 0;
	for (i = sz-1; i >= 0; i--)
	{
		if (arr[i] == ' ' )
		{
			for (j = i+1; j < sz; j++)
			{
				if (arr[j] != ' ')
					printf("%c", arr[j]);
				else
					break;
			}
			printf(" ");
		}
		if (i == 0)
		{
			for (j = 0; j < sz; j++)
			{
				if (arr[j] != ' ')
					printf("%c", arr[j]);
				else
					break;
			}
		}
	}
	return 0;
}
